[INFO] fetching crate git-cinnabar 0.7.3...
[INFO] fixing git-cinnabar-0.7.3 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate git-cinnabar 0.7.3 into /workspace/builds/worker-2-tc2/source
[INFO] removed /workspace/builds/worker-2-tc2/source/.cargo/config.toml
[INFO] started tweaking crates.io crate git-cinnabar 0.7.3
[INFO] finished tweaking crates.io crate git-cinnabar 0.7.3
[INFO] tweaked toml for crates.io crate git-cinnabar 0.7.3 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate git-cinnabar 0.7.3 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate git-cinnabar 0.7.3 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7e3c9ef91656aa652dfb2bb64edcf891c2fbe200a4539c7b1e3a19077d29c821
[INFO] running `Command { std: "docker" "start" "7e3c9ef91656aa652dfb2bb64edcf891c2fbe200a4539c7b1e3a19077d29c821", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7e3c9ef91656aa652dfb2bb64edcf891c2fbe200a4539c7b1e3a19077d29c821" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7e3c9ef91656aa652dfb2bb64edcf891c2fbe200a4539c7b1e3a19077d29c821", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7e3c9ef91656aa652dfb2bb64edcf891c2fbe200a4539c7b1e3a19077d29c821" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]    Compiling icu_locid_transform_data v1.5.1
[INFO] [stderr]    Compiling icu_properties_data v1.5.1
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling icu_normalizer_data v1.5.1
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]     Checking cfg-if v1.0.1
[INFO] [stderr]     Checking litemap v0.7.4
[INFO] [stderr]     Checking writeable v0.5.5
[INFO] [stderr]    Compiling object v0.36.7
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling rustix v1.0.8
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]    Compiling semver v1.0.26
[INFO] [stderr]     Checking utf16_iter v1.0.5
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]     Checking write16 v1.0.0
[INFO] [stderr]    Compiling jobserver v0.1.33
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]    Compiling cc v1.2.29
[INFO] [stderr]    Compiling proc-macro-error-attr2 v2.0.0
[INFO] [stderr]     Checking anstyle-parse v0.2.7
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]     Checking anstyle-query v1.1.3
[INFO] [stderr]    Compiling rustversion v1.0.21
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]     Checking memchr v2.7.5
[INFO] [stderr]    Compiling target v2.1.0
[INFO] [stderr]    Compiling make-cmd v0.1.0
[INFO] [stderr]     Checking anstyle v1.0.11
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.1
[INFO] [stderr]     Checking colorchoice v1.0.4
[INFO] [stderr]     Checking anstream v0.6.19
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking clap_lex v0.7.5
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]     Checking gimli v0.31.1
[INFO] [stderr]     Checking linux-raw-sys v0.9.4
[INFO] [stderr]     Checking regex-syntax v0.8.5
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling libz-sys v1.1.22
[INFO] [stderr]    Compiling zstd-sys v2.0.15+zstd.1.5.7
[INFO] [stderr]    Compiling bzip2-sys v0.1.13+1.0.8
[INFO] [stderr]    Compiling curl-sys v0.4.82+curl-8.14.1
[INFO] [stderr]     Checking percent-encoding v2.3.1
[INFO] [stderr]     Checking strsim v0.11.1
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking clap_builder v4.5.41
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]     Checking addr2line v0.24.2
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking path-dedot v3.1.1
[INFO] [stderr]    Compiling cstr v0.2.12
[INFO] [stderr]     Checking crc32fast v1.5.0
[INFO] [stderr]     Checking hashbrown v0.15.4
[INFO] [stderr]     Checking rustc-demangle v0.1.25
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.5
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]    Compiling clap_derive v4.5.41
[INFO] [stderr]    Compiling git-version-macro v0.3.9
[INFO] [stderr]     Checking zerofrom v0.1.5
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]    Compiling git-cinnabar v0.7.3 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating build.rs from 2021 edition to 2024
[INFO] [stderr]     Checking tinystr v0.7.6
[INFO] [stderr]     Checking icu_collections v1.5.0
[INFO] [stderr]     Checking icu_locid v1.5.0
[INFO] [stderr]    Compiling getset v0.1.6
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking icu_provider v1.5.0
[INFO] [stderr]     Checking cpufeatures v0.2.17
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking backtrace v0.3.74
[INFO] [stderr]     Checking icu_locid_transform v1.5.0
[INFO] [stderr]     Checking clap v4.5.41
[INFO] [stderr]     Checking git-version v0.3.9
[INFO] [stderr]     Checking derive_more v2.0.1
[INFO] [stderr]     Checking indexmap v2.10.0
[INFO] [stderr]     Checking tempfile v3.20.0
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking icu_properties v1.5.1
[INFO] [stderr]     Checking flate2 v1.1.2
[INFO] [stderr]     Checking path-absolutize v3.1.1
[INFO] [stderr]     Checking rand v0.9.1
[INFO] [stderr]     Checking bzip2 v0.5.2
[INFO] [stderr]     Checking bstr v1.12.0
[INFO] [stderr]     Checking shared_child v1.0.2
[INFO] [stderr]     Checking bit-vec v0.8.0
[INFO] [stderr]     Checking hex-literal v0.4.1
[INFO] [stderr]     Checking lru v0.13.0
[INFO] [stderr]     Checking concat_const v0.2.0
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking array-init v2.1.0
[INFO] [stderr]     Checking hex v0.4.3
[INFO] [stderr]     Checking tee v0.1.0
[INFO] [stderr]     Checking idna_adapter v1.2.0
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]    Migrating src/main.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/tree_util.rs:632:27
[INFO] [stdout]     |
[INFO] [stdout] 632 |                     match entry.maybe_recurse() {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 644 |                 } _ => {
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] 645 |                     self.prefix.truncate(*prefix_len);
[INFO] [stdout] 646 |                     self.stack.pop();
[INFO] [stdout]     |                     ----------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed src/hg_bundle.rs (4 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/tree_util.rs:630:23
[INFO] [stdout]     |
[INFO] [stdout] 630 |                 match iter.next().map(IsWithPath::realize).map(WithPath::unzip)
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 646 |                     self.stack.pop();
[INFO] [stdout]     |                     ----------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 647 |                 }}
[INFO] [stdout] 648 |             } else {
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed src/libcinnabar.rs (7 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/main.rs:1890:33
[INFO] [stdout]      |
[INFO] [stdout] 1890 |         if let Some(metadata) = RawGitChangesetMetadata::read(store, cid) {
[INFO] [stdout]      |                     --------    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                     |           |
[INFO] [stdout]      |                     |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                     |           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                     `metadata` calls a custom destructor
[INFO] [stdout]      |                     `metadata` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1912 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> src/libgit.rs:306:1
[INFO] [stdout]      |
[INFO] [stdout]  306 | impl<T: ?Sized> Drop for FfiBox<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `metadata` invokes this custom destructor
[INFO] [stdout]     --> src/libgit.rs:306:1
[INFO] [stdout]      |
[INFO] [stdout]  306 | impl<T: ?Sized> Drop for FfiBox<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed src/version.rs (11 fixes)
[INFO] [stdout] warning: `impl Iterator<Item = (&N, &T)>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/store.rs:901:10
[INFO] [stdout]     |
[INFO] [stdout] 901 |     ) -> impl Iterator<Item = (&N, &T)> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/store.rs:899:17
[INFO] [stdout]     |
[INFO] [stdout] 899 |         starts: &[N],
[INFO] [stdout]     |                 ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/store.rs:900:29
[INFO] [stdout]     |
[INFO] [stdout] 900 |         mut follow_parents: impl FnMut(N, &T) -> bool,
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]     = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 897 ~     pub fn traverse_parents<U: FnMut(N, &T) -> bool>(
[INFO] [stdout] 898 |         &self,
[INFO] [stdout] 899 |         starts: &[N],
[INFO] [stdout] 900 ~         mut follow_parents: U,
[INFO] [stdout] 901 ~     ) -> impl Iterator<Item = (&N, &T)> + use<'_, N, T, U> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed src/tree_util.rs (1 fix)
[INFO] [stdout] warning: `impl Iterator<Item = (&N, &T)>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/store.rs:942:10
[INFO] [stdout]     |
[INFO] [stdout] 942 |     ) -> impl Iterator<Item = (&N, &T)> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/store.rs:940:17
[INFO] [stdout]     |
[INFO] [stdout] 940 |         starts: &[N],
[INFO] [stdout]     |                 ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/store.rs:941:30
[INFO] [stdout]     |
[INFO] [stdout] 941 |         mut follow_children: impl FnMut(N, &T) -> bool,
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 938 ~     pub fn traverse_children<U: FnMut(N, &T) -> bool>(
[INFO] [stdout] 939 |         &self,
[INFO] [stdout] 940 |         starts: &[N],
[INFO] [stdout] 941 ~         mut follow_children: U,
[INFO] [stdout] 942 ~     ) -> impl Iterator<Item = (&N, &T)> + use<'_, N, T, U> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed src/logging.rs (1 fix)
[INFO] [stdout] warning: `impl IntoIterator<Item = (Box<[u8]>, IndexMap<hg::file::HgFileId, (hg::file::HgFileId, hg::file::HgFileId, hg::changeset::HgChangesetId)>)>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]     --> src/hg_bundle.rs:1149:6
[INFO] [stdout]      |
[INFO] [stdout] 1149 |   ) -> impl IntoIterator<
[INFO] [stdout]      |  ______^
[INFO] [stdout] 1150 | |     Item = (
[INFO] [stdout] 1151 | |         Box<[u8]>,
[INFO] [stdout] 1152 | |         IndexMap<HgFileId, (HgFileId, HgFileId, HgChangesetId)>,
[INFO] [stdout] 1153 | |     ),
[INFO] [stdout] 1154 | | > {
[INFO] [stdout]      | |_^
[INFO] [stdout]      |
[INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds
[INFO] [stdout]     --> src/hg_bundle.rs:1145:12
[INFO] [stdout]      |
[INFO] [stdout] 1145 |     store: &Store,
[INFO] [stdout]      |            ^
[INFO] [stdout] 1146 |     bundle_part_writer: &mut BundlePartWriter<CHUNK_SIZE>,
[INFO] [stdout]      |                         ^                    ^
[INFO] [stdout]      = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/hg_bundle.rs:1148:16
[INFO] [stdout]      |
[INFO] [stdout] 1148 |     manifests: impl IntoIterator<Item = (HgManifestId, (HgManifestId, HgManifestId, HgChangesetId))>,
[INFO] [stdout]      |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1144 ~ fn bundle_manifest<const CHUNK_SIZE: usize, T: IntoIterator<Item = (HgManifestId, (HgManifestId, HgManifestId, HgChangesetId))>>(
[INFO] [stdout] 1145 |     store: &Store,
[INFO] [stdout] 1146 |     bundle_part_writer: &mut BundlePartWriter<CHUNK_SIZE>,
[INFO] [stdout] 1147 |     version: u8,
[INFO] [stdout] 1148 ~     manifests: T,
[INFO] [stdout] 1149 | ) -> impl IntoIterator<
[INFO] [stdout]  ...
[INFO] [stdout] 1153 |     ),
[INFO] [stdout] 1154 ~ > + use<CHUNK_SIZE, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed src/main.rs (12 fixes)
[INFO] [stderr]        Fixed src/libgit.rs (22 fixes)
[INFO] [stderr]        Fixed src/xdiff.rs (4 fixes)
[INFO] [stderr]        Fixed src/store.rs (9 fixes)
[INFO] [stderr]        Fixed src/hg_connect_http.rs (3 fixes)
[INFO] [stderr]        Fixed src/hg_connect.rs (5 fixes)
[INFO] [stderr]        Fixed src/util.rs (10 fixes)
[INFO] [stderr]        Fixed src/graft.rs (1 fix)
[INFO] [stderr]        Fixed src/libc.rs (1 fix)
[INFO] [stderr]        Fixed src/hg_connect_stdio.rs (2 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/tree_util.rs:632:27
[INFO] [stdout]     |
[INFO] [stdout] 632 |                     match entry.maybe_recurse() {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 644 |                 } _ => {
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] 645 |                     self.prefix.truncate(*prefix_len);
[INFO] [stdout] 646 |                     self.stack.pop();
[INFO] [stdout]     |                     ----------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 29s
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/tree_util.rs:630:23
[INFO] [stdout]     |
[INFO] [stdout] 630 |                 match iter.next().map(IsWithPath::realize).map(WithPath::unzip)
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 646 |                     self.stack.pop();
[INFO] [stdout]     |                     ----------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 647 |                 }}
[INFO] [stdout] 648 |             } else {
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/main.rs:1890:33
[INFO] [stdout]      |
[INFO] [stdout] 1890 |         if let Some(metadata) = RawGitChangesetMetadata::read(store, cid) {
[INFO] [stdout]      |                     --------    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                     |           |
[INFO] [stdout]      |                     |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                     |           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                     `metadata` calls a custom destructor
[INFO] [stdout]      |                     `metadata` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1912 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> src/libgit.rs:306:1
[INFO] [stdout]      |
[INFO] [stdout]  306 | impl<T: ?Sized> Drop for FfiBox<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `metadata` invokes this custom destructor
[INFO] [stdout]     --> src/libgit.rs:306:1
[INFO] [stdout]      |
[INFO] [stdout]  306 | impl<T: ?Sized> Drop for FfiBox<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl Iterator<Item = (&N, &T)>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/store.rs:901:10
[INFO] [stdout]     |
[INFO] [stdout] 901 |     ) -> impl Iterator<Item = (&N, &T)> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/store.rs:899:17
[INFO] [stdout]     |
[INFO] [stdout] 899 |         starts: &[N],
[INFO] [stdout]     |                 ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/store.rs:900:29
[INFO] [stdout]     |
[INFO] [stdout] 900 |         mut follow_parents: impl FnMut(N, &T) -> bool,
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]     = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 897 ~     pub fn traverse_parents<U: FnMut(N, &T) -> bool>(
[INFO] [stdout] 898 |         &self,
[INFO] [stdout] 899 |         starts: &[N],
[INFO] [stdout] 900 ~         mut follow_parents: U,
[INFO] [stdout] 901 ~     ) -> impl Iterator<Item = (&N, &T)> + use<'_, N, T, U> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl Iterator<Item = (&N, &T)>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/store.rs:942:10
[INFO] [stdout]     |
[INFO] [stdout] 942 |     ) -> impl Iterator<Item = (&N, &T)> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/store.rs:940:17
[INFO] [stdout]     |
[INFO] [stdout] 940 |         starts: &[N],
[INFO] [stdout]     |                 ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/store.rs:941:30
[INFO] [stdout]     |
[INFO] [stdout] 941 |         mut follow_children: impl FnMut(N, &T) -> bool,
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 938 ~     pub fn traverse_children<U: FnMut(N, &T) -> bool>(
[INFO] [stdout] 939 |         &self,
[INFO] [stdout] 940 |         starts: &[N],
[INFO] [stdout] 941 ~         mut follow_children: U,
[INFO] [stdout] 942 ~     ) -> impl Iterator<Item = (&N, &T)> + use<'_, N, T, U> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1
[INFO] [stdout] warning: `impl IntoIterator<Item = (Box<[u8]>, IndexMap<hg::file::HgFileId, (hg::file::HgFileId, hg::file::HgFileId, hg::changeset::HgChangesetId)>)>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]     --> src/hg_bundle.rs:1149:6
[INFO] [stdout]      |
[INFO] [stdout] 1149 |   ) -> impl IntoIterator<
[INFO] [stdout]      |  ______^
[INFO] [stdout] 1150 | |     Item = (
[INFO] [stdout] 1151 | |         Box<[u8]>,
[INFO] [stdout] 1152 | |         IndexMap<HgFileId, (HgFileId, HgFileId, HgChangesetId)>,
[INFO] [stdout] 1153 | |     ),
[INFO] [stdout] 1154 | | > {
[INFO] [stdout]      | |_^
[INFO] [stdout]      |
[INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds
[INFO] [stdout]     --> src/hg_bundle.rs:1145:12
[INFO] [stdout]      |
[INFO] [stdout] 1145 |     store: &Store,
[INFO] [stdout]      |            ^
[INFO] [stdout] 1146 |     bundle_part_writer: &mut BundlePartWriter<CHUNK_SIZE>,
[INFO] [stdout]      |                         ^                    ^
[INFO] [stdout]      = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/hg_bundle.rs:1148:16
[INFO] [stdout]      |
[INFO] [stdout] 1148 |     manifests: impl IntoIterator<Item = (HgManifestId, (HgManifestId, HgManifestId, HgChangesetId))>,
[INFO] [stdout]      |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1144 ~ fn bundle_manifest<const CHUNK_SIZE: usize, T: IntoIterator<Item = (HgManifestId, (HgManifestId, HgManifestId, HgChangesetId))>>(
[INFO] [stdout] 1145 |     store: &Store,
[INFO] [stdout] 1146 |     bundle_part_writer: &mut BundlePartWriter<CHUNK_SIZE>,
[INFO] [stdout] 1147 |     version: u8,
[INFO] [stdout] 1148 ~     manifests: T,
[INFO] [stdout] 1149 | ) -> impl IntoIterator<
[INFO] [stdout]  ...
[INFO] [stdout] 1153 |     ),
[INFO] [stdout] 1154 ~ > + use<CHUNK_SIZE, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr] crater-edition-check: git-cinnabar v0.7.3 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]    Compiling git-cinnabar v0.7.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]     --> src/hg_bundle.rs:1180:22
[INFO] [stdout]      |
[INFO] [stdout] 1180 |             .map(|p| (p.to_git(store).unwrap().into()))
[INFO] [stdout]      |                      ^                               ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1180 -             .map(|p| (p.to_git(store).unwrap().into()))
[INFO] [stdout] 1180 +             .map(|p| p.to_git(store).unwrap().into())
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]     --> src/hg_bundle.rs:1180:22
[INFO] [stdout]      |
[INFO] [stdout] 1180 |             .map(|p| (p.to_git(store).unwrap().into()))
[INFO] [stdout]      |                      ^                               ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1180 -             .map(|p| (p.to_git(store).unwrap().into()))
[INFO] [stdout] 1180 +             .map(|p| p.to_git(store).unwrap().into())
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `bundle_part_writer` as mutable more than once at a time
[INFO] [stdout]     --> src/hg_bundle.rs:1139:25
[INFO] [stdout]      |
[INFO] [stdout] 1138 |     let files = bundle_manifest(store, &mut bundle_part_writer, version, manifests.drain(..));
[INFO] [stdout]      |                                        ----------------------- first mutable borrow occurs here
[INFO] [stdout] 1139 |     bundle_files(store, &mut bundle_part_writer, version, files);
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^           ----- first borrow later used here
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         second mutable borrow occurs here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/hg_bundle.rs:1138:17
[INFO] [stdout]      |
[INFO] [stdout] 1138 |     let files = bundle_manifest(store, &mut bundle_part_writer, version, manifests.drain(..));
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/hg_bundle.rs:1148:16
[INFO] [stdout]      |
[INFO] [stdout] 1148 |     manifests: impl IntoIterator<Item = (HgManifestId, (HgManifestId, HgManifestId, HgChangesetId))>,
[INFO] [stdout]      |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1144 ~ fn bundle_manifest<const CHUNK_SIZE: usize, T: IntoIterator<Item = (HgManifestId, (HgManifestId, HgManifestId, HgChangesetId))>>(
[INFO] [stdout] 1145 |     store: &Store,
[INFO] [stdout] 1146 |     bundle_part_writer: &mut BundlePartWriter<CHUNK_SIZE>,
[INFO] [stdout] 1147 |     version: u8,
[INFO] [stdout] 1148 ~     manifests: T,
[INFO] [stdout] 1149 | ) -> impl IntoIterator<
[INFO] [stdout]  ...
[INFO] [stdout] 1153 |     ),
[INFO] [stdout] 1154 ~ > + use<CHUNK_SIZE, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `bundle_part_writer` as mutable more than once at a time
[INFO] [stdout]     --> src/hg_bundle.rs:1139:25
[INFO] [stdout]      |
[INFO] [stdout] 1138 |     let files = bundle_manifest(store, &mut bundle_part_writer, version, manifests.drain(..));
[INFO] [stdout]      |                                        ----------------------- first mutable borrow occurs here
[INFO] [stdout] 1139 |     bundle_files(store, &mut bundle_part_writer, version, files);
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^           ----- first borrow later used here
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         second mutable borrow occurs here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/hg_bundle.rs:1138:17
[INFO] [stdout]      |
[INFO] [stdout] 1138 |     let files = bundle_manifest(store, &mut bundle_part_writer, version, manifests.drain(..));
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/hg_bundle.rs:1148:16
[INFO] [stdout]      |
[INFO] [stdout] 1148 |     manifests: impl IntoIterator<Item = (HgManifestId, (HgManifestId, HgManifestId, HgChangesetId))>,
[INFO] [stdout]      |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1144 ~ fn bundle_manifest<const CHUNK_SIZE: usize, T: IntoIterator<Item = (HgManifestId, (HgManifestId, HgManifestId, HgChangesetId))>>(
[INFO] [stdout] 1145 |     store: &Store,
[INFO] [stdout] 1146 |     bundle_part_writer: &mut BundlePartWriter<CHUNK_SIZE>,
[INFO] [stdout] 1147 |     version: u8,
[INFO] [stdout] 1148 ~     manifests: T,
[INFO] [stdout] 1149 | ) -> impl IntoIterator<
[INFO] [stdout]  ...
[INFO] [stdout] 1153 |     ),
[INFO] [stdout] 1154 ~ > + use<CHUNK_SIZE, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/main.rs:5327:9
[INFO] [stdout]      |
[INFO] [stdout] 5277 | unsafe extern "C" fn cinnabar_main(_argc: c_int, argv: *const *const c_char) -> c_int { unsafe {
[INFO] [stdout]      |                                                                                         ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 5327 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/main.rs:5327:9
[INFO] [stdout]      |
[INFO] [stdout] 5277 | unsafe extern "C" fn cinnabar_main(_argc: c_int, argv: *const *const c_char) -> c_int { unsafe {
[INFO] [stdout]      |                                                                                         ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 5327 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0499`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0499`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `git-cinnabar` (bin "git-cinnabar" test) due to 1 previous error; 2 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `git-cinnabar` (bin "git-cinnabar") due to 1 previous error; 2 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "7e3c9ef91656aa652dfb2bb64edcf891c2fbe200a4539c7b1e3a19077d29c821", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7e3c9ef91656aa652dfb2bb64edcf891c2fbe200a4539c7b1e3a19077d29c821", kill_on_drop: false }`
[INFO] [stdout] 7e3c9ef91656aa652dfb2bb64edcf891c2fbe200a4539c7b1e3a19077d29c821
